查看原文
其他

在 Kusama 上如何给帐号加 V ?

佟林、Chevdor PolkaWorld 2020-11-11

大家好,我是Phala Network的佟林,然而我在Kusama上的身份不仅仅是EK8veMNH6sVtvhSRo4q1ZRh6huCDm69gxK4eN5MFoZzo3G7这么简单,大家可以在Kusama网络上看到我的真实信息:

除此以外,我还是一个管理Kusama网络身份的注册商——前些日子我向Kusama提交了一项动议,提议在Kusama上注册新的注册服务商:2号身份注册商。

这不是Kusama的第一个注册商。通过查询身份模块的链状态,可以看到共有三个注册服务商,费用最便宜的就是本注册商(Marvin-Phala Network)了:

今天我以Acala基金会地址为例,给大家讲解下如何在Kusama(或波卡)网络上成为一个身份通过验证的大V。

注册服务商是干什么的?

Kusama/波卡的身份系统

首先,让我们明确一点,我们说的身份注册商,其角色目标是验证和证明链上地址与链下身份的一致性。

如果您熟悉其他区块链,则有可能会问:

  • 我可以在波卡上保持匿名吗?
  • 波卡是否像联盟链一样强制设置身份?

目前,在Kusama上创建的帐户是伪匿名的。您无需提供任何个人数据即可创建帐户。这类似于在比特币或以太坊等链上创建帐户。

那么,Polkadot是否保证匿名?

  • 我的答案是:不一定哦!

假设你在Kusama/波卡上创建了帐户并仔细存储其私钥后,您将获得一个地址。比如:HSNBs8VHxcZiqz9NfSQq2YaznTa8BzSvuEWVe4uTihcGiQN

这样看起来,该帐户是匿名的——但是一旦向该帐户发送或从该帐户发送了一笔交易,您就可以开始跟踪其帐户。用户在自己的帐户之间交易的情况并不少见。

Kusama和Polkadot不像ZCash那样提供匿名交易,如果您需要匿名交易,可以通过波卡平行链 Phala Network 来完成,目前Phala已经实现了在测试网上铸造匿名资产、隐私交易的功能,未来会和其他平行链打通,实现波卡网络资产/业务的隐私保护。

为什么要放弃这种伪匿名性?

答案是:链上治理、节点服务

Polkadot和Kusama提供了一个新颖的功能:链上治理。简而言之,这意味着任何人都可以在链上影响链的行为方式。您没听错,任何用户都可以建议更改Kusama/波卡链的未来。例如,可以通过提案系统将当前运行的runtime通过添加/删除/更改功能后,更新新版本来完成升级。

在Kusama/波卡的NPOS机制中,验证人规模会比较庞大,如何让提名人在如此多的验证人中挑选你的地址,投票给你?这需要你能够脱颖而出——诚实、可信是一个重要因素。我们发现,在表现良好的验证人中,得到了身份验证的占比不小!

在以上两点支持下,您是否还觉得保持链上地址就够了?

虽然Kusama/波卡支持您在帐号-身份设置中填入自己的信息,比如:

但是这并不足够可信!我可以说出两个“不够”的例子:

  • 某个地址宣称自己是Gavin Wood或Web3基金会的官方地址,应该相信他吗?
  • 某个节点宣称自己多了一个节点地址,应该相信他吗?

你应该发现了,这里存在着巨大的骗局空间:上面的信息没有太大价值,因为任何与Genesis Lab无关的用户都可以设置相似的身份。

我们需要一种方法来检查,验证并在链上存储结果。这就是身份注册商的任务。

注册商规则是什么?

“取决于注册商自己” 可能是最合适的答案——每个注册服务商都可以决定何时以及要验证什么。在下一章中,我将描述注册服务商#2 (Marvin) 的规则及其验证身份流程。

验证身份的级别

以下列表将来可能会更改,但以下是帐户可以采用的当前状态:

  • 未知
  • 已付费
  • 合理
  • 很好
  • 过期
  • 低质量
  • 错误

2号身份注册商的规则

以下是2号注册商的规则:

  • 提供到可信度“很好”的级别
  • “很好”级别需满足两个条件:线下与2号注册商认识超过6个月,并且通过了至少3项信息验证挑战
  • 尽管将对显示名称和法定名称进行粗略检查,以确保其完整性和匹配性,但将不进行进一步检查。显示名称显然与法定名称不匹配的帐户可能会被拒绝
  • 仅考虑具有至少一个通讯渠道(电子邮件,Riot,推特等)的帐户
  • 所有通讯渠道均使用挑战机制进行独立验证。合理级别仅授予通过所有挑战的帐户。

身份挑战

挑战的主要目的是确保给定帐户的所有者也控制着通信渠道,比如推特、邮箱、Riot等等。每个通信渠道都经过独立验证,并接受自己的挑战。

这是一个身份挑战的示例:

{
"account": "HyBryanRsB1GGKa9ZfqvRc3XpTDipYyRvxNNyZYfWFcenhd",
"challengeRiot": "TZVCTRBICXQALVHO",
"display": "Acala Foundation",
"web": "https://acala.network",
"riot": #acala:matrix.org",
"email": "hello@acala.network",
"twitter": "@AcalaNetwork"
}

认证过程

这是2号注册商的当前认证过程:

1.设置链上身份

尽管您可以直接调用外部函数,但Polkadot UI使其变得更加容易。

用户只能为自己的帐户设置链上身份,因此,用户界面在“帐户”部分下提供了一个按钮也就不足为奇了:

调用setIdentity

在Kusama控制台/帐号旁边,单击“设置on-chain身份”按钮,将显示以下对话框:

SetIdentity 重要的是要牢记重新改动后,任何注册服务商证书都将作废,因为在经过注册服务商认证后,链上身份被修改了。因此,建议仔细检查所有内容是否正确。

在链上设置身份目前需要将存款设置为10 KSM。这些资金会被锁定,它们仍然属于您,只要设置完了身份它们就会被锁定在您的帐户中。

2.申请身份验证

Acala基金会为了参与Kusama网络的治理,根据上述步骤完成了身份信息设置,下一步是请求注册服务商来为你提供验证服务,我们将以Acala Foudation的地址HSNBs8VHxcZiqz9NfSQq2YaznTa8BzSvuEWVe4uTihcGiQN为例说明。

Kusama/波卡的UI界面,选择“交易”,选择Identity,选择requestJudgement

setIdentity

在这里,您需要注意以下几点:

  • 确保从您要验证的帐户中请求
  • 确保选择reg_index是验证您信息的注册商(我是2号,填2
  • 最后,请确保提供max_fee与所选注册商所需费用相匹配的正确费用(2号注册商填写1个KSM即可)

提交后,验证状态将更改为“判断:已请求”

目前,注册商验证流程正在自动执行,但在此操作开始之前一直保持手动状态。联系该注册服务商——对于2号注册服务商——你可以在邮箱/微信/Riot上向我发送私人消息。

3.真人交互验证

联系我(微信、邮箱、电报)时,Acala管理员已经不需要提供太多信息:提供KSM帐户地址就足够了。毕竟,所有数据已经在链上了。比如我去查询地址HSNBs8VHxcZiqz9NfSQq2YaznTa8BzSvuEWVe4uTihcGiQN 可以看到Acala基金会设置身份的信息如下:

在检查当前设置的身份是否满足注册服务商#2的验证标准之后,我将对身份中定义的每个渠道产生不同的挑战。

警告:挑战看起来非常相似,但并不相同。

因为Acala提供的地址HSNBs8VHxcZiqz9NfSQq2YaznTa8BzSvuEWVe4uTihcGiQN 比较特殊,这是一个多签地址,通过const addresses我们可以获取到此地址由三个Kusama地址控制,分别是:

  • EindYaUViAdardcU5gzFbQxh1jCcuQwhoKQK9vi1e2MkAPd
  • HEkh52pShreLjbiGuewsnbXTeXFiq5mxqF3TffeHRjsbuN5
  • HyBryanRsB1GGKa9ZfqvRc3XpTDipYyRvxNNyZYfWFcenhd

因此,我会向每一个控制地址发起验证挑战,确保每个地址的验证是完全通过的,最后再给总帐号做通过验证的操作。

此外,我将为每个通道(邮件/Riot/推特)完成此挑战-验证过程

  • 我会先根据Acala的链上信息,生成不同的挑战代码
  • 然后将Riot的挑战代码发给Acala的Riot,将推特的挑战代码发给Acala的推特,将邮件的挑战代码发给Acala的邮箱
  • Acala帐号管理员需要将每个渠道收到的代码进行链上签名,并发送签名哈希回复给Riot、推特、邮件。请使用电子邮件提供电子邮件挑战的签名,必须使用Twitter等提供Twitter挑战的签名...

注意:要允许2号注册服务商与您联系,在认证过程中必须遵循我的指导

因此我先对Acala申请验证地址的第一个子地址HyBryanRsB1GGKa9ZfqvRc3XpTDipYyRvxNNyZYfWFcenhd (Bryan Chen)发起验证。

Acala收到挑战后,将需要使用Polkadot UI对我发送的各个消息进行签名。他可以从UI界面轻松地做到这一点:https://polkadot.js.org/apps/#/toolbox/sign

解锁帐户进行签名 警告:确保解锁正确的帐户!

对于每个通道,将质询复制到“签署以下数据”字段中,然后单击“签署消息”按钮,如下所示:

Acala完成签名后,帐号管理员需要发送签名哈希通过Riot、推特、邮件给我,他需要使用电子邮件提供电子邮件挑战的签名,必须使用Twitter等提供Twitter挑战的签名

第一步:Riot挑战

第二步:Twitter挑战

第三步:邮件挑战

第四步:注册商2对签名进行验证

作为注册商,我将检查Acala的签名是否与该渠道代码一致。通常,注册商会通过Riot/电报/微信等IM来通知每次测试的结果。

Acala也可以自己执行这种检查。

比如签名:

{
"account": "HyBryanRsB1GGKa9ZfqvRc3XpTDipYyRvxNNyZYfWFcenhd",
"challengeRiot": "TZVCTRBICXQALVHO",
"display": "Acala Foundation",
"web": "https://acala.network",
"riot": #acala:matrix.org",
"email": "hello@acala.network",
"twitter": "@AcalaNetwork"
}

使用帐户HyBryanRsB1GGKa9ZfqvRc3XpTDipYyRvxNNyZYfWFcenhd可以检查以下签名是否正确:

0x5ecf3b08f06ca4c613b3193a3efd314d428859042651957f5f6dd1039fc5024beba3e8d2b200334e6ba2560c84f3751ab6f6c511b2b872f3abd3279eb8c9ed89

使用Polkadot UI进行检查将如下所示:

Acala-Riot挑战结果验证成功!

第五步:对其他地址重复验证步骤

因为Acala的地址是一个多签地址,因此我对另一个地址EindYaUViAdardcU5gzFbQxh1jCcuQwhoKQK9vi1e2MkAPd重复了以上步骤,并也验证成功。

4.注册费

请注意,任何时候都不会将KSM发送给注册服务商,你不需要汇款或转帐。申请requestJudgement时,注册服务商费用将被锁定并保留。仅在完成工作后,它才会转移到注册商。毕竟,我们正在使用不信任的系统。

5.资质认证

Acala帐号的可信度验证成功了!因为此帐号线下与2号注册商认识超过6个月,并且通过了至少3项信息验证挑战,因此我给了“很好”的验证级别!Acala可以用这个地址进行竞选等治理行为了。

注册商将外部信息提交到网络通常需要几秒钟的时间。一旦区块确认,Acala的帐户就会被绿色复选标记修饰,以识别已验证的帐户。

已验证帐户:Acala基金会

警告:请记住,从现在开始,调用setIdentity和更改那里的任何信息将使您当前的认证失效,并且您需要从“ 用户请求判断”部分重新开始。

如果大家有验证身份的需求,欢迎扫码关注公众号“Phala可信网络”,进群后找到小助手说明验证需求!


  • 欢迎学习 Substrate: 

    https://substrate.dev/

  • 关注 Substrate 进展:

    https://github.com/paritytech/substrate

  • 关注 Polkadot 进展:

    https://github.com/paritytech/polkadot

  • 申请 Bootcamp: 

    https://bootcamp.web3.foundation/


更多内容:


真假波卡生态项目的鉴别指南

延迟支付|你的 KSM 奖励为什么要手动领?

Web3.0系列视频:直播回顾第四期



扫码关注公众号,回复 “1” 加入波卡群

关注 PolkaWorld

发现 Web 3.0 时代新机遇


点个 “在看” 再走吧!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存